

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<script type="text/javascript" src="helpman_topicinit.js"></script>

<title>OCL Conformance [Enterprise Architect User Guide]</title>

<meta name="keywords" content="Enterprise Architect, Sparx Systems, UML, Model Validation,Model Validation OCL Conformance Rule,Model Validation Rule, OCL Conformance,OCL Constraints,OCL Constraints Model Validation Rules for Conformance,OCL Constraints Relationship,OCL Constraints Element,OCL Constraints Attribute,OCL Constraints Feature,Object Constraint Language,Object Constraint Language Model Validation Rules For Conformance">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<link type="text/css" href="default.css" rel="stylesheet" />
<style type="text/css">
  A, A:Visited
  {
    color: #00F;
  }

  A:Active, A:Hover
  {
    color: #F00;
  }

  OL
  {
    margin: 5px 0 5px 48px;
  }

  UL
  {
    margin-bottom: 3px;
    margin-top: 0;
  }

  #nsr
  {
    background-color: #D4DFFF;
  }

  #nsr A
  {
    text-decoration: none;
  }

  #mainbody
  {
    padding: 8px;
  }

  .p_BodyText
  {
    padding: 5px 0;
  }
</style>



<style type="text/css" media="screen">
  BODY
  {
    background-color: #FFFFFF;
  }

  #nsr
  {
    padding: 6px 6px 0 6px;
    border-bottom: none;
    vertical-align: top;
    z-index: 2;
    visibility: visible;
    left: 0;
    top: 0;
    position: absolute;
  }

  #mainbody
  {
    left: 0;
    top: 0;
    margin: 0;
    position: absolute;
    padding: 10px;
    overflow: auto;
    height: 100%;
    z-index: 1;
    background-repeat: no-repeat;
    background-position: bottom right;
    background-attachment: fixed;
  }
</style>

<style type="text/css" media="print">
  #nsr
  {
    visibility: none;
  }

  #mainbody
  {
    overflow: visible;
  }
</style>
<script type="text/javascript" language="JavaScript" src="nonscroll.js"></script>

</head>
<body scroll="no">

<div id="page">



        <div id="content">
          <div id="content-inner">
          



  
          <div id="nsr">
            <table border="0" cellspacing="0" cellpadding="4" width="100%">
              <tr valign="top">
                <td align="left">
  


                  <p class="p_Heading1"><span class="f_Heading1">OCL Conformance</span></p>



  
                </td>
                <td align="right">
                  <a href="introduction.htm" onmouseover="document.images.main.src='button_main_h.gif'" onmouseout="document.images.main.src='button_main.gif'">
                    <img name="main" src="button_main.gif" border=0 alt="Return to Introduction">
                  </a>&nbsp;
    
                  <a href="property_validity_element_rela.htm" onmouseover="document.images.prev.src='button_prev_h.gif'" onmouseout="document.images.prev.src='button_prev.gif'">
                    <img name=prev src="button_prev.gif" border=0 alt="Previous page" />
                  </a>&nbsp;
    
    
    
                  <a href="teamdevelopment.htm" onmouseover="document.images.next.src='button_next_h.gif'" onmouseout="document.images.next.src='button_next.gif'">
                    <img name=next src="button_next.gif" border=0 alt="Next page" />
                  </a>
    
    
                </td>
              </tr>
            </table>
          </div>
          <div id="mainbody">
  


                <p class="p_BodyText"><span class="f_BodyText">This group validates an element, relationship or attribute against any defined constraints in the Object Constraint Language (OCL). OCL is used to describe expressions on UML models, and to express side-effect free constraints. You can add OCL constraints to any element, relationship or attribute in Enterprise Architect.</span></p>
<div style="text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 5px 0px 5px 13px;"><table cellspacing="0" cellpadding="0" border="0" style="border: none; border-spacing:0px; border-collapse: collapse;">
<tr style="text-align:left;vertical-align:top;">
<td valign="top" width="118" bgcolor="#e3e6ed" style="width:118px; background-color:#e3e6ed; border: solid 1px #000000;"><p class="p_Tableheader"><span class="f_Tableheader">Error ID</span></p>
</td>
<td valign="top" width="190" bgcolor="#e3e6ed" style="width:190px; background-color:#e3e6ed; border: solid 1px #000000;"><p class="p_Tableheader"><span class="f_Tableheader">Description</span></p>
</td>
<td valign="top" width="315" bgcolor="#e3e6ed" style="width:315px; background-color:#e3e6ed; border: solid 1px #000000;"><p class="p_Tableheader"><span class="f_Tableheader">Information</span></p>
</td>
</tr>
<tr style="text-align:left;vertical-align:top;">
<td valign="top" width="118" style="width:118px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">MVR040001</span></p>
</td>
<td valign="top" width="190" style="width:190px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">OCL violation: </span><span class="f_Tabletext">&laquo;violated OCL&raquo;</span></p>
</td>
<td valign="top" width="315" style="width:315px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">The element violates the OCL constraint specified.</span></p>
</td>
</tr>
<tr style="text-align:left;vertical-align:top;">
<td valign="top" width="118" style="width:118px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">MVR070001</span></p>
</td>
<td valign="top" width="190" style="width:190px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">OCL violation: </span><span class="f_Tabletext">&laquo;violated OCL&raquo;</span></p>
</td>
<td valign="top" width="315" style="width:315px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">The relationship violates the OCL constraint specified.</span></p>
</td>
</tr>
<tr style="text-align:left;vertical-align:top;">
<td valign="top" width="118" style="width:118px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">MVR0A0001</span></p>
</td>
<td valign="top" width="190" style="width:190px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">OCL violation: </span><span class="f_Tabletext">&laquo;violated OCL&raquo;</span></p>
</td>
<td valign="top" width="315" style="width:315px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">The attribute violates the OCL constraint specified.</span></p>
</td>
</tr>
</table>
</div>
<div style="text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 5px 0px 5px 13px;"><table cellspacing="0" cellpadding="2" border="0" style="border: none; border-spacing:0px;">
<tr style="text-align:left;vertical-align:bottom;">
<td valign="bottom" width="955" bgcolor="#efeff7" style="width:955px; background-color:#efeff7;"><p class="p_TiporNote" style="border-top: none; border-right: none; border-left: none;"><span class="f_TiporNote" style="color: #ff0000;">Important:</span></p>
</td>
</tr>
<tr style="text-align:left;">
<td width="955" bgcolor="#f7f7ff" style="width:955px; background-color:#f7f7ff;"><p class="p_TiporNoteText"><span class="f_TiporNoteText">To have a valid OCL constraint, the syntax must be correctly formed. If the expression is not correct, Enterprise Architect displays a message stating that the OCL constraint is not valid.</span></p>
</td>
</tr>
</table>
</div>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Define OCL Constraints for an Element</span></p>
<p class="p_BodyText"><span class="f_BodyText">You can add OCL constraints to an element using the </span><span class="f_UIControl">Properties</span><span class="f_BodyText"> dialog (</span><span class="f_MenuKeyField">Element | Properties</span><span class="f_BodyText">). Select the </span><span class="f_UIControl">Constraints</span><span class="f_BodyText"> tab, click on the </span><span class="f_MenuKeyField">Type</span><span class="f_BodyText"> drop-down arrow and select </span><span class="f_MenuKeyField">OCL</span><span class="f_BodyText">.</span></p>
<p class="p_TextIndentedL2"><img src="oclconstraintelement.png" width="389" height="484" border="0" alt="OCLConstraintElement"></p>
<p class="p_BodyText"><span class="f_BodyText">To perform an OCL Validation, display the <a href="configuring_model_validation.htm">Model Validation Configuration</a> dialog and select the </span><span class="f_MenuKeyField">Element: (OCL) Conformance</span><span class="f_BodyText"> checkbox. Any OCL violations are recorded in the <a href="model_validation.htm#ModelValidationOutput">Model Validation Output window</a>.</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Define OCL Constraints for a Relationship</span></p>
<p class="p_BodyText"><span class="f_BodyText">You can add OCL constraints to a relationship using the </span><span class="f_UIControl">Properties</span><span class="f_BodyText"> dialog (right-click, </span><span class="f_MenuKeyField">&lt;type&gt; Properties</span><span class="f_BodyText">). Select the </span><span class="f_UIControl">Constraints</span><span class="f_BodyText"> tab, click on the </span><span class="f_MenuKeyField">Type</span><span class="f_BodyText"> drop-down arrow and select </span><span class="f_MenuKeyField">OCL</span><span class="f_BodyText">.</span></p>
<p class="p_TextIndentedL2"><img src="oclconstraintrelationship.png" width="388" height="445" border="0" alt="OCLConstraintRelationship"></p>
<p class="p_BodyText"><span class="f_BodyText">To perform an OCL Validation, display the </span><span class="f_UIControl">Model Validation Configuration</span><span class="f_BodyText"> dialog and select the </span><span class="f_MenuKeyField">Relationship: (OCL) Conformance</span><span class="f_BodyText"> checkbox. Any OCL violations are recorded in the </span><span class="f_UIControl">Model Validation Output</span><span class="f_BodyText"> window.</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Define OCL Constraints for an Attribute</span></p>
<p class="p_BodyText"><span class="f_BodyText">You can add OCL constraints to a feature using the </span><span class="f_UIControl">Properties</span><span class="f_BodyText"> dialog (</span><span class="f_MenuKeyField">Element | Attributes</span><span class="f_BodyText">). Select the </span><span class="f_UIControl">Constraints</span><span class="f_BodyText"> tab, click on the </span><span class="f_MenuKeyField">Type</span><span class="f_BodyText"> drop-down arrow and select </span><span class="f_MenuKeyField">OCL</span><span class="f_BodyText">.</span></p>
<p class="p_TextIndentedL2"><img src="oclconstraintfeature.png" width="466" height="471" border="0" alt="OCLConstraintFeature"></p>
<p class="p_BodyText"><span class="f_BodyText">To perform an OCL Validation, display the </span><span class="f_UIControl">Model Validation Configuration</span><span class="f_BodyText"> dialog and select the </span><span class="f_MenuKeyField">Feature: (OCL) Conformance</span><span class="f_BodyText"> checkbox. Any OCL violations are recorded in the </span><span class="f_UIControl">Model Validation Output</span><span class="f_BodyText"> window.</span></p>




            </div>
          </div>
        </div>



</div>


</body>
</html>
